]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
DashDND: Don't allow positioning before or after self
authorAdel Gadllah <adel.gadllah@gmail.com>
Thu, 6 Jan 2011 13:19:44 +0000 (14:19 +0100)
committerAdel Gadllah <adel.gadllah@gmail.com>
Thu, 6 Jan 2011 13:31:45 +0000 (14:31 +0100)
Don't allow the icon to be dropped immediately next to
itself.

https://bugzilla.gnome.org/show_bug.cgi?id=637104

js/ui/dash.js

index 39440cf730c8d4a8acc2215a9b1179600b65bf6d..e3f3063be95320d69d2c29de42f0633a8bff5daf 100644 (file)
@@ -273,7 +273,11 @@ Dash.prototype = {
         if (app == null || app.is_transient())
             return DND.DragMotionResult.NO_DROP;
 
-        let numFavorites = AppFavorites.getAppFavorites().getFavorites().length;
+        let favorites = AppFavorites.getAppFavorites().getFavorites();
+        let numFavorites = favorites.length;
+
+        let favPos = favorites.indexOf(app);
+
         let numChildren = this._box.get_children().length;
         let boxHeight = this._box.height;
 
@@ -291,15 +295,16 @@ Dash.prototype = {
             this._dragPlaceholderPos = pos;
             if (this._dragPlaceholder)
                 this._dragPlaceholder.destroy();
+
+            // Don't allow positioning before or after self
+            if (favPos != -1 && (pos == favPos || pos == favPos + 1))
+                return DND.DragMotionResult.CONTINUE;
+
             this._dragPlaceholder = new St.Bin({ style_class: 'dash-placeholder' });
             this._box.insert_actor(this._dragPlaceholder, pos);
         }
 
-        let id = app.get_id();
-
-        let favorites = AppFavorites.getAppFavorites().getFavoriteMap();
-
-        let srcIsFavorite = (id in favorites);
+        let srcIsFavorite = (favPos != -1);
 
         if (srcIsFavorite)
             return DND.DragMotionResult.MOVE_DROP;